// import axios from 'axios';
// // 引入 axios 实例
// import type { AxiosInstance } from 'axios';
// import { ElLoading } from 'element-plus';
// // 引入 Loading实例
// import { LoadingInstance } from 'element-plus/lib/components/loading/src/loading.d.js';

// class HYRequest {
//   instance: AxiosInstance; //axios实例
//   showLoading: boolean; // 是否开启Loading
//   loading?: ILoadingInstance; //Loading实例
//   constructor(config: HYRequestConfig) {
//     this.instance = axios.create(config);
//     this.interceptors = config.interceptors;
//     this.showLoading = config.showLoading ?? DEAFULT_LOADING;
//     //添加拦截器
//     this.instance.interceptors.request.use(
//       (config) => {
//         if (this.showLoading) {
//           this.loading = ElLoading.service({
//             lock: true,
//             text: '正在请求数据...',
//             background: 'regba(0,0,0,0.5)',
//           });
//         }
//         return config;
//       },
//       (err) => {
//         console.log('所有实例的拦拦截器:请求拦截失败');
//         return err;
//       }
//     );
//     this.instance.interceptors.response.use(
//       (res) => {
//         console.log('所有实例的拦拦截器:响应拦截成功');
//         //将loading移除
//         this.loading?.close();
//         const data = res.data as any;
//         if (data.returnCode === '-1001') {
//           console.log('请求失败,错误信息');
//         } else {
//           return data;
//         }
//       },
//       (err) => {
//         console.log('所有实例的拦拦截器:响应拦截失败');
//         if (err.response.status === 404) {
//           console.log('404的错误');
//         }
//         return err;
//       }
//     );
//   }
//   request<T>(config: HYRequestConfig): Promise<T> {
//     return new Promise((resolve, reject) => {
//       if (config.showLoading === true) {
//         this.showLoading = config.showLoading;
//       }
//       this.instance
//         .request<any, any>(config)
//         .then((res) => {
//           this.showLoading = DEAFULT_LOADING;
//           resolve(res);
//         })
//         .catch((err) => {
//           this.showLoading = DEAFULT_LOADING;
//           reject(err);
//           return err;
//         });
//     });
//   }

//   get<T>(config: HYRequestConfig): Promise<T> {
//     return this.request<T>({ ...config, method: 'get' });
//   }

//   post<T>(config: HYRequestConfig): Promise<T> {
//     return this.request<T>({ ...config, method: 'post' });
//   }

//   delete<T>(config: HYRequestConfig): Promise<T> {
//     return this.request<T>({ ...config, method: 'delete' });
//   }

//   patch<T>(config: HYRequestConfig): Promise<T> {
//     return this.request<T>({ ...config, method: 'patch' });
//   }
// }

// export default HYRequest;
